package com.woniu.cq.medical.controller;


import com.woniu.cq.medical.common.Result;
import com.woniu.cq.medical.controller.form.CaseForm;
import com.woniu.cq.medical.entity.Case;
import com.woniu.cq.medical.service.CaseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.text.ParseException;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *病例控制层
 * @author Klaus
 * @since 2020-09-05
 */
@RestController
@RequestMapping("/medical/case")
@CrossOrigin("*")//解决跨域问题
@Slf4j
public class CaseController {
    @Autowired
    private CaseService caseService;

    /**
     * 根据身份证查询病人病历（未归档的病例）
     * @return
     */

    @RequestMapping("selectCaseByPatientIdCard")
    public Result selectCaseByPatientIdCard(String idCard){
        Case aCase = caseService.selectCaseByIdCard(idCard, false);
        log.info("查询出的结果为{}",aCase);
        return Result.success(aCase);
    }

    /**
     * 更新病例
     * 如果之前所有病例均已更新 则进行新增操作
     * 如果之前已经有没归档的病例 则将此病例进行更新
     * @param caseForm
     */
    @RequestMapping("updadeCase")
    public Result updadeCase(@RequestBody CaseForm caseForm){
        log.info("获取到的前端参数为{}",caseForm);
        try {
            caseService.updadeCase(caseForm);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return Result.success();
    }

    /**
     * 根据身份证和病历号查询病人的病例   如果caseID为空的字符串  则只使用  idCard 作为条件查询
     * @param idCard
     * @return
     */
    @RequestMapping("selectCaseListByIdCard")
    public Result selectCaseListByIdCard(String idCard,String caseId){
        List<Case> cases = caseService.selectCaseListByIdCard(idCard, caseId);
        return Result.success(cases);
    }
}

